package com.fabriciojf.util;

import java.util.HashMap;

/**
 * Classe para estudo de HashMap
 *
 * @author fabricio
 * @since 03/08/2010
 * @version 1.0
 */
public class HashMapCS {

    HashMap<Long, String> mapa;

    /**
     * Singleton
     */
    private static HashMapCS instance = new HashMapCS();
    public static HashMapCS getInstance() {
        return instance;
    }

    /**
     * Constructor gera um mapa que sera usado nos testes
     */
    public HashMapCS() {
        gerarHash();
    }

    /**
     * Faz um loop no mapa pegando a chave
     */
    public void listarMapaPorChave() {
        System.out.println("Lista por chave");
        for (Long key : mapa.keySet()) {
            System.out.println(key);
        }
    }

    /**
     * Faz um loop no mapa pegando o objeto
     */
    public void listarMapaPorObjeto() {
        System.out.println("Lista por Objeto");
        for (String obj : mapa.values()) {
            System.out.println(obj);
        }
    }

    /**
     * Gera um mapa do tipo <Long, String>
     */
    private void gerarHash() {
        mapa = new HashMap<Long, String>();
        mapa.put(1L, "Janeiro");
        mapa.put(2L, "Fevereiro");
        mapa.put(3L, "Marco");
        mapa.put(4L, "Abril");
        mapa.put(5L, "Maio");
        mapa.put(6L, "Junho");
        mapa.put(7L, "Julho");
        mapa.put(8L, "Agosto");
        mapa.put(9L, "Setembro");
        mapa.put(10L, "Outubro");
        mapa.put(11L, "Novembro");
        mapa.put(12L, "Dezembro");
    }
}
